package com.r2coding.article.dao;

import com.r2coding.article.entity.ArticleEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.r2coding.article.vo.DateCountVo;
import com.r2coding.article.vo.req.QueryArticleReqVo;
import com.r2coding.article.vo.resp.QueryArticleRespVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 
 * 
 * @author 98k灬
 * @email hk666zx@163.com
 * @date 2022-04-12 23:41:38
 */
@Mapper
public interface ArticleDao extends BaseMapper<ArticleEntity> {

    /**
     * 条件查询
     *
     * @param title 标题
     * @param labelId 标签id
     * @param categoryId 分类id
     * @return 文章信息
     */
    List<QueryArticleRespVo> queryList(@Param("title") String title,
                                       @Param("labelId") Integer labelId,
                                       @Param("categoryId") Integer categoryId,
                                       @Param("isPublic") Integer isPublic);

    /**
     * 根据博客id查询博客详情信息
     *
     * @param id 博客id
     * @return 博客详情信息
     */
    List<QueryArticleRespVo> queryById(@Param("id") Integer id);

    /**
     * 获取每个日期发布的文章数
     *
     * @return 每个日期发布的文章数
     */
    List<DateCountVo> getDateCountVo();

    /**
     * 查询文章的分类ids
     *
     * @return 文章的分类ids
     */
    List<Integer> selectAllCategoryId();

    List<ArticleEntity> selectArticleByLabelId(@Param("labelId") Integer labelId);
}
